package collection;

import java.util.LinkedList;
import java.util.Queue;

/**
 * 队列
 * 队列是经典的数据结构，可以保存一组元素，但是存取元素必须遵循先进先出原则。
 * 
 * java.util.Queue接口，队列接口，继承自Collection.
 * 常用实现类:java.util.LinkedList
 * @author 范传奇
 *
 */
public class QueueDemo {
	public static void main(String[] args) {
		Queue<String> queue = new LinkedList<>();
		//入队操作，将元素添加到队列末尾
		queue.offer("one");
		queue.offer("two");
		queue.offer("three");
		queue.offer("four");
		queue.offer("five");
		queue.offer("six");
		System.out.println(queue);
		//poll出队操作，获取队首元素的同时将其从队列中删除
		String str = queue.poll();
		System.out.println(str);
		System.out.println(queue);
		//peek引用队首元素，获取队首元素后该元素不会出队。
		str = queue.peek();
		System.out.println(str);
		System.out.println(queue);
		
		System.out.println("size:"+queue.size());
		//迭代器遍历队列后，元素还在队列中
		for(String s : queue) {
			System.out.println(s);
		}
		System.out.println(queue);
		
		/*
		 * 用poll方法遍历队列，这种操作是一次性的，遍历后队列中没有元素了
		 */
		while(queue.size()>0) {
			String s = queue.poll();
			System.out.println(s);
		}		
		System.out.println(queue);//[]
	}
}












